sql | 您所在的位置:网站首页 › impala 日期加减 › sql |
在Impala中将YYYYMMDD字符串转换为日期
时间:2015-10-08 19:24:27
标签: sql hadoop impala 我在Impala中使用SQL来编写此查询。我正在尝试将以YYYYMMDD格式存储的日期字符串转换为日期格式,以便运行如下查询: SELECT datadate, session_info FROM database WHERE datadate >= NOW() - INTERVAL 5 DAY ORDER BY datadate DESC;由于>= NOW() - INTERVAL 5 DAY代码不能与YYYYMMDD字符串一起使用,我想找到一种方法将其转换为可用于此类查询的日期格式。我的想法是它应该看起来像这样(基于关于其他SQL查询编辑器的类似问题),但它在Impala中不起作用: SELECT datadate, session_info, convert(datetime, '20141008', 102) AS session_date FROM database WHERE session_date >= NOW() - INTERVAL 5 DAY ORDER BY session_date DESC;任何人都知道如何在Impala中执行此操作? 修改 我终于找到了解决问题的有效方案。使用CAST或CONVERT配置的尝试都不会在Impala中起作用,但是下面的查询解决了问题并且完全可操作,允许对包含字符串值的列执行日期数学运算: SELECT datadate, session_info FROM database WHERE datadate >= from_unixtime(unix_timestamp(now() - interval 5 days), 'yyyyMMdd') GROUP BY datadate ORDER BY datadate DESC; 2 个答案:答案 0 :(得分:1) 本机方式: to_timestamp(cast(date_number AS STRING), 'yyyyMMdd')答案 1 :(得分:0) 要忽略时/分/秒...,请使用from_timestamp,结果为2020-01-01。 选择from_timestamp(cast('(2020-01-01 01:01:01.000000'作为TIMESTAMP),'yyyy-MM-dd'); |
CopyRight 2018-2019 实验室设备网 版权所有 |